package src.D_WinSock;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

// UDP不需要连接服务器，没有客户端和服务端这个概念
public class D03_UDP_LeLe {
    public static void main(String[] args) throws Exception {
        // 1、创建一个Socket
        DatagramSocket socket = new DatagramSocket(8888);
        // 2、建包打包
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 接收控制台内容放到io里
        while (true){    // 循坏发送信息
            String msg = br.readLine();  // 这里有bug，会多读取一个\n进去，所以mengmeng那边隔一条消息收不到
            byte[] msgs = msg.getBytes();
            DatagramPacket packet = new DatagramPacket(
                    msgs,                                                    // 数据，并转化为字节数组
                    0,                                                      // 数据起始下标
                    msgs.length,                                           // 结束下标
                    new InetSocketAddress("localhost",7777) // ip 和 端口
            );
            // 3、发送包
            socket.send(packet);
            if (br.readLine().equals("close")) break; // 结束聊天
        }
        // 4、关流
        br.close();
        socket.close();
    }
}
